<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        /*
            迭代器 是一种接口，为各种不同的数据解构提供统一的访问机制。
            任何数据解构只要部署iterator接口（对象的属性），就可以完成遍历操作
        */
        //ES6 创造了一种新的遍历命令 for...of 循环，Iterator接口主要供for...of消费
        //原生具备iterator接口的数据（可用for of 遍历）

        //声明一个数组
        const xiyou = ['唐僧', '孙悟空', '猪八戒', '沙僧'];

        //使用 for of  遍历数组    for...in
        for (let v of xiyou) {
            console.log(v);
        }
        //工作原理
        /*
            a.创建一个指针对象，指向当前数据结构的起始位置
            b.第一次调用的next方法，指针自动指向数据结构的第一个成员
            c.接下来不断调用next方法，指针一直往后移动，直到指向最后一个成员
            d.没调用next方法返回一个包含value 和 done 属性的对象
        */
    </script>
</head>

<body>

</body>

</html>